home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / parted / filesys.h < prev    next >
C/C++ Source or Header  |  2006-04-20  |  4KB  |  100 lines

  1. /*
  2.     libparted - a library for manipulating disk partitions
  3.     Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
  4.  
  5.     This program is free software; you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation; either version 2 of the License, or
  8.     (at your option) any later version.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program; if not, write to the Free Software
  17.     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  18. */
  19.  
  20. #ifndef PED_FILESYS_H_INCLUDED
  21. #define PED_FILESYS_H_INCLUDED
  22.  
  23. typedef struct _PedFileSystem        PedFileSystem;
  24. typedef struct _PedFileSystemType    PedFileSystemType;
  25. typedef const struct _PedFileSystemOps    PedFileSystemOps;
  26.  
  27. #include <parted/geom.h>
  28. #include <parted/disk.h>
  29. #include <parted/exception.h>
  30. #include <parted/constraint.h>
  31. #include <parted/timer.h>
  32. #include <stdio.h>
  33.  
  34. struct _PedFileSystemOps {
  35.     PedGeometry* (*probe) (PedGeometry* geom);
  36.     int (*clobber) (PedGeometry* geom);
  37.  
  38.     PedFileSystem* (*open) (PedGeometry* geom);
  39.     PedFileSystem* (*create) (PedGeometry* geom, PedTimer* timer);
  40.     int (*close) (PedFileSystem* fs);
  41.     int (*check) (PedFileSystem* fs, PedTimer* timer);
  42.     PedFileSystem* (*copy) (const PedFileSystem* fs, PedGeometry* geom,
  43.                 PedTimer* timer);
  44.     int (*resize) (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer);
  45.  
  46.     PedConstraint* (*get_create_constraint) (const PedDevice* dev);
  47.     PedConstraint* (*get_resize_constraint) (const PedFileSystem* fs);
  48.     PedConstraint* (*get_copy_constraint) (const PedFileSystem* fs,
  49.                                   const PedDevice* dev);
  50. };
  51.  
  52. struct _PedFileSystemType {
  53.     PedFileSystemType*    next;
  54.     const char* const    name;
  55.     PedFileSystemOps* const    ops;
  56. };
  57.  
  58. struct _PedFileSystem {
  59.     PedFileSystemType*    type;
  60.     PedGeometry*        geom;
  61.     int            checked;
  62.  
  63.     void*            type_specific;
  64.  
  65. };
  66.  
  67. extern void ped_file_system_type_register (PedFileSystemType* type);
  68. extern void ped_file_system_type_unregister (PedFileSystemType* type);
  69.  
  70. extern PedFileSystemType* ped_file_system_type_get (const char* name);
  71. extern PedFileSystemType*
  72. ped_file_system_type_get_next (const PedFileSystemType* fs_type);
  73.  
  74. extern PedFileSystemType* ped_file_system_probe (PedGeometry* geom);
  75. extern PedGeometry* ped_file_system_probe_specific (
  76.             const PedFileSystemType* fs_type,
  77.             PedGeometry* geom);
  78. extern int ped_file_system_clobber (PedGeometry* geom);
  79.  
  80. extern PedFileSystem* ped_file_system_open (PedGeometry* geom);
  81. extern PedFileSystem* ped_file_system_create (PedGeometry* geom,
  82.                           const PedFileSystemType* type,
  83.                           PedTimer* timer);
  84. extern int ped_file_system_close (PedFileSystem* fs);
  85. extern int ped_file_system_check (PedFileSystem* fs, PedTimer* timer);
  86. extern PedFileSystem* ped_file_system_copy (PedFileSystem* fs,
  87.                         PedGeometry* geom,
  88.                         PedTimer* timer);
  89. extern int ped_file_system_resize (PedFileSystem* fs, PedGeometry* geom,
  90.                    PedTimer* timer);
  91.  
  92. extern PedConstraint* ped_file_system_get_create_constraint (
  93.         const PedFileSystemType* fs_type, const PedDevice* dev);
  94. extern PedConstraint* ped_file_system_get_resize_constraint (
  95.         const PedFileSystem* fs);
  96. extern PedConstraint* ped_file_system_get_copy_constraint (
  97.         const PedFileSystem* fs, const PedDevice* dev);
  98.  
  99. #endif /* PED_FILESYS_H_INCLUDED */
  100.